package utils

import (
	"os"
	"path/filepath"
	"time"

	"github.com/rs/zerolog"
)

var Logger zerolog.Logger

// InitLogger 初始化日志系统
func InitLogger() {
	// 创建日志目录
	logDir := "logs"
	if err := os.MkdirAll(logDir, 0755); err != nil {
		panic("无法创建日志目录: " + err.Error())
	}

	// 日志文件路径
	logFile := filepath.Join(logDir, "app.log")

	// 打开日志文件
	file, err := os.OpenFile(logFile, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
	if err != nil {
		panic("无法打开日志文件: " + err.Error())
	}

	// 配置 Zerolog
	zerolog.TimeFieldFormat = time.RFC3339

	// 同时输出到控制台和文件
	multi := zerolog.MultiLevelWriter(os.Stdout, file)
	Logger = zerolog.New(multi).With().Timestamp().Caller().Logger()

	// 设置全局日志级别
	zerolog.SetGlobalLevel(zerolog.InfoLevel)

	Logger.Info().Msg("日志系统初始化完成")
}
